Data communicated between electronic devices is typically encoded for transmission at a transmitting device in order to facilitate reliable transmission of the data and reduce transmission errors. For example, data to be transmitted may be encoded to reduce the impact of noise or other factors on the transmitted data. The encoded stream of data bits is then transmitted to a receiving device. At the receiving device, the encoded data is decoded and the data transformed to a useable format for the receiving device.
In order to decode the received data, the receiving device interprets the transmitted data stream at particular time intervals. At each time interval, the receiving device can detect or analyze the received data to determine the state of each received bit. Accordingly, proper decoding of the received data is based on analyzing the data at the appropriate time intervals. The time intervals can be based on a decode clock at the receiving device that is synchronized with a clock at the transmitting device. However, the data transmission intervals for the data stream can vary depending on the transmitting device. Multiple decode clocks can be employed at the receiving device to account for different data transmission intervals, but at an undesirable cost of complexity and device area. Further, maintaining synchronization between a clock and the received data is difficult because of drift or jitter in the transmitted data stream.
Accordingly, there is a need in the art for an improved method and system to decode received data.